package com.heima.client.article;

import com.heima.model.common.dtos.*;
import com.heima.model.common.pojos.article.ApArticleConfig;
import com.heima.model.common.pojos.wemedia.WmNewsComment;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/**
 * @author 陈辉
 * @data 2024 15:20
 */
@FeignClient("leadnews-article")
public interface IArticleClient {

    /**
     * 保存或修改article文章信息
     *
     * @param articleDto
     * @return
     */
    @PostMapping("/api/v1/article/sync")
    ResponseResult syncArticle(@RequestBody ArticleDto articleDto);

    /**
     * 加载文章列表
     * @param dto
     * @return
     */
    @PostMapping("/api/v1/article/list")
    ResponseResult getArticleList(@RequestBody CommentPageDto dto);

    /**
     * 修改文章评论状态
     * @param articleId
     * @param operation
     */
    @PutMapping("/api/v1/article/update")
     ResponseResult updateComment(@RequestParam Long articleId,@RequestParam Integer operation);

    /**
     * 查看文章信息
     * @param params
     * @return
     */
    @PostMapping("/api/v1/article/query")
    String selectNews(@RequestBody Map<String, String> params);

    /**
     * 分页展示文章列表
     *
     * @param newsPageDto
     * @return
     */
    @PostMapping("/api/v1/statistics/newsPage")
    public ResponseResult newsPage(@RequestBody NewsPageDto newsPageDto);


    //获取文章配置信息
    @GetMapping("/api/v1/article/config/{articleId}")
    public ResponseResult getArticleConfig(@PathVariable Long articleId);

    /**
     * 清空评论数量
     * @param commentDto
     */
    @PostMapping("/api/v1/statistics/delete")
    void deleteNews(@RequestBody CommentDto commentDto);

    /**
     * 添加评论数量
     * @param entryId
     */
    @PutMapping("/api/v1/statistics/save")
    void saveComment(@RequestParam Long entryId);

    /**
     * 查询文章具体信息
     *
     * @param articleId
     * @return
     */
    @PostMapping("/api/v1/statistics/selectArticle")
    ApArticleConfig selectArticle(@RequestParam Long articleId);
}
